const mysql = require('mysql')
//创建连接池,连接池的作用是管理多个数据库连接，避免每次执行 SQL 查询时都重新创建连接，从而提高性能
const pool = mysql.createPool({
  host: 'localhost', //服务器地址
  user: 'root', //账号
  password: '248918', //密码
  database: 'shopping', //数据库名称
  multipleStatements: true,
  timezone:"SYSTEM"
})
 
//封装sql执行函数
/**
 * 
 * @param {需要执行的sql} sql 
 * @param {数组对应sql占位符? 对象对应占位符:xxx} values 
 * @returns Promise
 */
const executeQuery = (sql, values) => {
  console.log(`execute sql 【${sql}】`);
  
  return new Promise((resolve, reject) => {
    pool.getConnection((err, connection) => {
      if (err) {
        reject(err)
        return
      }
      connection.query(sql, values, (queryErr, results) => {
        connection.release()
        if (queryErr) {
          reject(queryErr)
        } else {
          resolve(results)
        }
      })
    })
  })
}
 
module.exports = {
  executeQuery
}